package com.hongdee.crm.kpi.service;

import java.util.List;
import java.util.Map;

/**
 * Created by My on 2017/3/1.
 */
public interface IKPIService {
    /**
     * @param
     * @throws Exception
     * @desc 活动分页
     * @author 徐钦勇
     */
    public Map ActivePage(String start, String limit, String name, String oid, Map data) throws Exception;

    /**
     * 集团报表 活动分析
     * @param uid
     * @param start
     * @param limit
     * @param data
     * @return
     * @throws Exception
     */
    public Map ActivePageGroup(String uid,String start, String limit,  Map data) throws Exception;

    /**
     * @param
     * @return Map
     * @throws Exception
     * @desc 优惠卷详情
     * @author 徐钦勇
     */
    public Map CouponPage(String uid,String start, String limit, String id, String type, String timeType, Map data) throws Exception;

    /**
     * 活动分布报表
     */
    public Map activityTable(String activityId) throws Exception;

    /**
     * sa过程管理报表
     */
    public Map SaProcess(String uid, String start, String limit, String mDate,String area,String brand,String companyId) throws Exception;
    /**
     * SA过程管理任务穿透明细
     * @param uid
     * @param start
     * @param limit
     * @param status
     * @param pcode
     * @param code
     * @param type
     * @return
     * @throws Exception
     */
    public Map SaProcessDetail(String uid,String saId,String start,String limit,String status,String pcode,
                               String code,String type,String mDate,String companyId) throws Exception;

    /**
     * SA过程管理维系穿透明细
     * @param uid
     * @param mDate
     * @param type
     * @param start
     * @param limit
     * @return
     * @throws Exception
     */
    public Map SaProcessContactDetail(String uid,String mDate,String type,String status,String saId,String start,String limit,
                                      String companyId) throws Exception;

    /**
     * 流失客服回访月报
     */
    public List lsVisit(String mDate, String uid,String companyId,String area,String brand) throws Exception;

    /**
     * 流失客服回访明细
     * 作者：徐钦勇
     */
    public Map lsVisitDetail(String uid, String start, String limit, String mDate,String companyId,String area,
                             String brand) throws Exception;

    /**
     * 流失回厂数
     * 作者：徐钦勇
     */
    public Map carLostBack(String uid, String start, String limit, String mDate,String companyId,String area,String brand) throws Exception;

    /**
     * 保养回厂率
     * 作者：徐钦勇
     */
    public List<Map<String, Object>> byBackRate(String uid, String start, String limit, String mDate,String companyId,
                                                String area,String brand) throws Exception;

    /**
     * 保养回厂率数据穿透明细
     * @param uid
     * @param start
     * @param limit
     * @param mDate
     * @param typeCode
     * @param isBack
     * @param saId
     * @return
     * @throws Exception
     */
    public Map<String, Object> taskBackRateDetail(String uid, String start, String limit, String mDate,String typePcode,
                                                  String typeCode,String isBack,String saId,String status,String companyId) throws Exception;

    public Map<String, Object> taskBackRateDetail(String uid, String start, String limit, String mDate,String typePcode,
                                                  String typeCode,String isBack,String saId,String companyId) throws Exception;
    /**
     * 车辆回厂率
     * 作者：徐钦勇
     */
    public Map CarBackRate(String uid, String start, String limit, String mDate) throws Exception;

    /**
     * 工单匹配率
     * 作者：张国凯
     * 日期：2017-07-10
     */
    public List<Map<String, Object>> WorkOrderMatchRate(String uid, String start, String limit, String mDate,String mDate2,String companyId,String area,String brand) throws Exception;

    /**
     * 月度目标任务
     * 作者：徐钦勇
     */
    public Map MonthBackTask(String uid, String start, String limit, String mDate,String companyId,String area,String brand) throws Exception;

    /**
     * 事故车到店率
     * 作者：侯念晨
     */
    public List CarBack(String uid, String yDate,String companyId,String area,String brand) throws Exception;

    /**
     * 出保车辆到店率
     * 作者：侯念晨
     */
    public List cbcarback(String uid, String yDate, String sa,String companyId,String area,String brand) throws Exception;

    /**
     * 客户定保当场率
     * 作者：侯念晨
     */
    public List dbcarback(String uid, String yDate, String sa,String companyId,String area,String brand) throws Exception;

    /**
     * 新增工单车辆提醒
     *
     * @param mDate
     * @param uid
     * @return
     */
    List<Map<String, Object>> newCarOrder(String mDate, String uid) throws Exception;
    /**
     * 产值分析报表,取已时间段每日产值数据
     * @param uid
     * @param data 参数集合
     * @return
     * @throws Exception
     */
    public List balaceAnalysis (String uid ,Map data )throws Exception;

    /**
     * @Name:进厂辆次
     * @Date: 2017/8/21 16:00
     * @Author: Liu XiaoLong
     */
    public List enterVehicleNum (String uid,Map data) throws Exception;
    /**
     * 新增基盘趋势
     * @param uid
     * @param DateYearMonth
     * @return
     * @throws Exception
     */
    public List newAddBaseData(String uid, String DateYearMonth,String companyId,String area,String brand) throws Exception;
    /**
     * 新增基盘趋势明细
     * @param uid
     * @param DateYearMonthDay
     * @return
     * @throws Exception
     */
    public Map newAddBaseDataDetail(String uid, String DateYearMonthDay,String start,String limit,String companyId) throws Exception;
    /**
     * @Name: 基盘车辆贡献分布
     * @Author: Liu XiaoLong
     * @Date: 2017/8/31 15:28
     */
    public Map baseCarContribution(String uid,Map map,String start,String limit)throws Exception;
    /**
     * @Name: 基盘贡献 【详情】
     * @Author: Liu XiaoLong
     * @Date: 2017/9/6 09:26
     */
    public Map baseCarContributionDetail(String uid,String start,String limit,String companyId,Map data) throws Exception;

    /**
     * @Name: 基盘车辆车系分布
     * @Author: Liu XiaoLong
     * @Date: 2017/8/28 17:36
     */
    public Map baseCarSerice(String uid,Map map,String start,String limit)throws Exception;
    /**
     * @Name: 基盘车辆车系分布 【详情】
     * @Author: Liu XiaoLong
     * @Date: 2017/9/6 14:39
     * @Remark:
     */
    public Map baseCarSericeDetail(String uid,String start,String limit,String companyId,Map data) throws Exception;

    /**
     * @Name: 基盘车辆车龄分布
     * @Author: Liu XiaoLong
     * @Date: 2017/8/30 20:23
     */
    public Map baseCarAge(String uid,Map map,String start,String limit)throws Exception;
    /**
     * @Name: 基盘车辆车龄分布【详情】
     * @Author: Liu XiaoLong
     * @Date: 2017/9/5 19:13
     */
    public Map baseCarAgeDetail(String uid,String start,String limit,String companyId,Map data) throws Exception;

    /**
     * @Name: 基盘消费频次【详情】
     * @Author: Liu XiaoLong
     * @Date: 2017/9/4 20:47
     */
    public Map baseCarDetail(String uid,String start,String limit,String companyId,Map data) throws Exception;
   /**
    * @Name: 基盘消费频次
    * @Author: Liu XiaoLong
    * @Date: 2017/9/4 10:35
    */
    public Map baseCarConsumption(String uid,Map map,String start,String limit) throws Exception;
    /**
     * 流失基盘趋势
     * @param uid
     * @param DateYearMonth
     * @return
     * @throws Exception
     */
    public List lostBaseData(String uid, String DateYearMonth,String companyId,String area,String brand) throws Exception;


    /**
     * @Name: 流失车辆表详情
     * @Author: Liu XiaoLong
     * @Date: 2017/9/10 23:14
     * @Remark:
     */
    public Map lostCarTableDetail(String uid,Map map,String start,String stop) throws  Exception;
    /**
     * 流失基盘趋势明细
     * @param uid
     * @param DateYearMonthDay
     * @return
     * @throws Exception
     */

    public Map lostBaseDataDetail(String uid, String DateYearMonthDay,String start,String limit,String companyId) throws Exception;


    /**
     * @Name: 流失车辆表
     * @Author: Liu XiaoLong
     * @Date: 2017/9/10 22:30
     * @Remark:
     */
    public Map lostCarTable(String uid,Map map,String start,String stop) throws  Exception;

    /**
     * @name 保险任务过程管理
     * @Author：Hounianchen
     * @Date：2017/11/22
     * @param uid
     * @param token
     * @param area
     * @return
     */
    public Map insuranceTsakQuery(String uid, String token, String area, String brand, String companyId, String month,String start,String limit) throws Exception;

    /**
     * @name：保险任务过程管理明细查询
     * @Author: 侯念晨
     * @Date：2017/11/22
     * @param uid
     * @param token
     * @param companyId
     * @param saId
     * @param type 保险任务类型
     * @param time
     * @return
     * @throws Exception
     */
    public Map insuranceTaskDetail(String uid,String token,String companyId,String saId,String type,String time,String start,String limit)throws Exception;
}
